package subject.tengxun.middle;

/**
 * 功能：
 * 作者：yedou
 * 日期：2025/3/20 12:37
 */
public class maxSubArray {
    public static void main(String[] args) {
        int[] nums = {-2, 1, -3, 4, -1, 2, 1, -5, 4};

        if (nums == null || nums.length == 0) {
            System.out.println("0");
        }

        // 初始化当前子数组和和
        int currentSum = nums[0];
        // 全局最大和
        int maxSum = nums[0];

        // 从第二个元素开始遍历
        for (int i = 1; i < nums.length; i++) {
            // 决定是继续扩展当前子数组，还是以当前元素作为新的子数组起点
            currentSum = Math.max(nums[i], currentSum + nums[i]);
            // 更新全局最大和
            maxSum = Math.max(maxSum, currentSum);
        }
        System.out.println(maxSum);
    }
}